﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;

namespace SPMS.Common
{
    /// <summary>
    /// 业务处理错误时抛出的异常。
    /// </summary>
    public class BusinessException : ApplicationException
    {
        #region ---Constructor

        /// <summary>
        /// 初始化类型<see cref="BusinessException"/>的新实例。
        /// </summary>
        public BusinessException()
            : base()
        {
        }

        /// <summary>
        /// 初始化类型<see cref="BusinessException"/>的新实例。
        /// </summary>
        /// <param name="message">错误描述信息。</param>
        public BusinessException(string message)
            : base(message)
        {
        }

        /// <summary>
        /// 使用指定错误消息和对作为此异常原因的内部异常的引用来初始化see cref="BusinessException" />类的新实例。
        /// </summary>
        /// <param name="message">错误描述信息。</param>
        /// <param name="innerException">导致当前异常的异常。如果<see cref="innerException"/>参数不为空引用，则在处理内部异常的 catch 块中引发当前异常。</param>
        public BusinessException(string message, Exception innerException)
            : base(message, innerException)
        {
        }

        /// <summary>
        /// 用序列化数据初始化<see cref="BusinessException"/>的新实例。
        /// </summary>
        /// <param name="info">保存序列化对象数据的对象。</param>
        /// <param name="context">有关源或目标的上下文信息。</param>
        protected BusinessException(SerializationInfo info, StreamingContext context)
            : base(info, context)
        {
        }

        #endregion
    }
}
